This invention generally relates to data processing systems and more specifically to secondary storage facilities connected in such systems.
Secondary storage facilities comprise elements which are not an integral part of a central processing unit and its random access memory element, but which are directly connected to and controlled by the central processing unit or other elements in the system. These facilities are also known as "mass storage" elements and include magnetic tape memory units, disk units and drum units.
These facilities are also termed "sequential access storage units" because the information stored in one of these units becomes available, or stored, only in a "one-after-the-other" sequence, whether or not all the information or only some of it is desired. For example, it is usual practice to retrieve information from a disk unit on a "sector-by-sector" basis, even though only one of several information records in a sector is needed. Similarly, a physical record on a tape is analogous to a sector on a disk and a complete physical record may be retrieved even though it may contain more than one relevant information record.
These devices are also "serial storage devices." In a serial storage device time and sequential position are factors used to locate any given bit, character, word or groups of words appearing one after the other in time sequence. The individual bits appear or are read serially in time.
In modern data processing systems a secondary storage facility includes a controller and one or more drives connected thereto. The controller operates in response to signals from the data processing system, usually on an input/output bus which connects together other elements in the system including the central processing unit. A drive contains the recording medium (e.g., tape or a rotating disk), the mechanism for moving the medium, and electronic circuitry to read data from or store data on the medium and also to convert the data between serial and parallel formats.
The controller appears to the rest of the system as any other system element on the input/output bus. It receives commands over the bus which include command information about the operation to be performed, the drive to be used, the size of the transfer, the starting address on the drive for the transfer, and the starting address in some other system element, such as a random access memory unit. The controller converts all this command information into the necessary signals to effect the transfer between the appropriate drive and other system elements. During the transfer itself, the controller routes the data to or from the appropriate drive and from or to the input/output bus or a memory bus.
In most prior secondary storage facilities, a controller connects to one or more drives, but a drive connects only to one controller. A single controller performs a data transfer with only one drive at a time. A single controller may effectuate control operations in different drives simultaneously. These control operations, for example, include, in a disk memory drive, repositioning the reading and writing means and, in a tape drive, advancing the tape to a new position. It is characteristic of control operations that none of them involve the transfer of data to or from the storage medium.
Once a data transfer does begin, a controller dedicates a transfer section to that specific operation. The controller can not connect its transfer section and other drives until the operation terminates. All other drives remain idle, even though one or more of the idle drives may be conditioned to receive or send data.
This limitation in prior systems reduces the rate at which data can be transferred. For example, in a facility comprising several disk memory drives, when a command for performing a data transfer is processed, on the average, at least one-half disk revolution must occur before the actual transfer can begin. This introduces "a latency delay," known as a "rotational latency delay" in a disk drive. In fact, the maximum rotational latency delay is the interval required for one complete disk revolution. These latency delays can significantly reduce the efficiency of the data processing system by limiting the rate at which data is transferred to or from the drive.
There are now data processing networks which comprise, as network components, entire data processing systems. Each data processing system in such a network may include its own secondary storage facility. In other networks, a single data processing system may contain a secondary storage facility for the entire network. In order to fully utilize these networks in whatever form, it is necessary to interchange data between systems in the network. With prior facilities, each such interchange could require two or more transfers. For example, in a network involving a single secondary storage facility, there might be a first transfer from the facility to a random access memory in the first system and then a second transfer from that memory to a memory associated with another system which was to utilize the information. Such interchanges complicate the programming that is necessary and also detract from the overall network operating efficiency.
Recently introduced drives can connect to different controllers as a solution to minimize these problems. In one embodiment of a facility including such a drive, the controllers are unchanged. A drive contains all the necessary switching circuits. The drive comprises one status register corresponding to each controller. The system connected to each controller can retrieve the contents of a corresponding drive status register at any time. One stage of each status indicates whether the drive is available to the corresponding controller and system. These stages are cross-coupled to prevent one system from initiating any control or transfer operation while the drive is busy with another controller.
If a system retrieve the contents of the corresponding status register in these drive systems and the drive is busy with another controller, the controlling program must note that fact and return at some later time to see if conditions change. This requirement complicates programming and reduces the overall operating efficiency of the system.
Therefore, it is an object of this invention to provide a secondary storage facility in which a drive can connect to a plurality of controllers.
Another object of this invention is to provide a secondary storage facility in which the rate of data transfers can be improved.
Still another object of this invention is to provide a secondary storage facility that is adapted for interconnection in data processing networks to be shared by different data proccessing systems.
Yet another object of this invention is to provide a secondary storage facility to which and from which data transfers can be made more efficiently than in the prior art.